/***
3-2 排座位 (20 分)
布置宴席最微妙的事情，就是给前来参宴的各位宾客安排座位。无论如何，总不能把两个死对头排到同一张宴会桌旁！这个艰巨任务现在就交给你，对任何一对客人，请编写程序告诉主人他们是否能被安排同席。

输入格式：
输入第一行给出3个正整数：N（≤100），即前来参宴的宾客总人数，则这些人从1到N编号；M为已知两两宾客之间的关系数；K为查询的条数。随后M行，每行给出一对宾客之间的关系，格式为：宾客1 宾客2 关系，其中关系为1表示是朋友，-1表示是死对头。注意两个人不可能既是朋友又是敌人。最后K行，每行给出一对需要查询的宾客编号。

这里假设朋友的朋友也是朋友。但敌人的敌人并不一定就是朋友，朋友的敌人也不一定是敌人。只有单纯直接的敌对关系才是绝对不能同席的。

输出格式：
对每个查询输出一行结果：如果两位宾客之间是朋友，且没有敌对关系，则输出No problem；如果他们之间并不是朋友，但也不敌对，则输出OK；如果他们之间有敌对，然而也有共同的朋友，则输出OK but...；如果他们之间只有敌对关系，则输出No way。

输入样例：
7 8 4
5 6 1
2 7 -1
1 3 1
3 4 1
6 7 -1
1 2 1
1 4 1
2 3 -1
3 4
5 7
2 3
7 2
结尾无空行
输出样例：
No problem
OK
OK but...
No way
结尾无空行
***/

#include "stdio.h"
#include "stdlib.h"
#define MAXN 101

struct search{
    int p1,p2;
}s[MAXN*MAXN];
struct enemy{
    int enemy;
    struct enemy *next;
};
int find(int *p,int who){
    if(p[who]!=who)
        p[who]=find(p,p[who]);
    return p[who];
}
int checkEnemy(struct enemy *enemys[],int p1,int p2){
    struct enemy *p=enemys[p1];
    while(p&&p->enemy!=p2)p=p->next;
    return p!=NULL;
}
void check(int f[], struct enemy *enemys[], int N, int p1, int p2)
{
    int fr = find(f, p1)==find(f,p2), enemy=checkEnemy(enemys,p1,p2);
    if (fr && !enemy)
        printf("No problem\n");
    else if (!fr && !enemy)
        printf("OK\n");
    else if (fr && enemy)
        printf("OK but...\n");
    else if (!fr&& enemy)
        printf("No way\n");
}
int main(int argc, char const *argv[])
{
    int N,M,K,p1,p2,v,i;
    int f[MAXN];
    struct enemy *enemys[MAXN],*e1,*e2;
    for(i=0;i<MAXN;i++){
        f[i]=i;
        enemys[i]=NULL;
    }
    // freopen("a.txt", "r", stdin);
    scanf("%d%d%d",&N,&M,&K);
    for(i=0;i<M;i++){
        scanf("%d%d%d",&p1,&p2,&v);
        if(v==1)f[find(f,p1)]=find(f,p2);
        else {
            e1=(struct enemy *)malloc(sizeof(struct enemy));
            e2=(struct enemy *)malloc(sizeof(struct enemy));
            e1->enemy=p2;
            e1->next=enemys[p1];
            enemys[p1]=e1;
            e2->enemy=p1;
            e2->next=enemys[p2];
            enemys[p2]=e2;
        }
    }
    for(i=0;i<K;i++){
        scanf("%d%d",&(s[i].p1),&(s[i].p2));
    }
    for(i=0;i<K;i++)check(f,enemys,N,s[i].p1,s[i].p2);
    return 0;
}
